package com.zx.crowdfunding.service.api;

import java.util.List;
import com.github.pagehelper.PageInfo;
import com.zx.crowdfunding.entity.Admin;

/**
 * 管理员	- Service接口
 * @author 郑雪
 * @date 2021-12-07
 */
public interface AdminService {
	
	/**
	 * 添加管理员
	 * @param admin 管理员对象
	 */
	void saveAdmin(Admin admin);
	
	/**
	 * 根据登录账号查询管理员
	 * @param loginAcct 登录账号
	 * @return Admin对象
	 */
	Admin getAdminByLoginAcct(String loginAcct);

	/**
	 * 根据登录账号查询管理员，并对登录密码进行比对
	 * @param loginAcct 登录账号
	 * @param userPswd 登录密码
	 * @return Admin对象
	 */
	Admin getAdminByLoginAcct(String loginAcct, String userPswd);
	
	/**
	 * 查询分页信息
	 * @param keyword 查询的关键字
	 * @param pageNum 页码
	 * @param pageSize 页大小
	 * @return PageInfo对象，封装了详细的分页信息
	 */
	PageInfo<Admin> getPageInfo(String keyword, Integer pageNum, Integer pageSize);

	/**
	 * 删除管理员
	 * @param id 管理员id
	 */
	void removeAdmin(Integer id);

	/**
	 * 根据id查询管理员
	 * @param id 管理员id
	 * @return Admin对象
	 */
	Admin getAdminById(Integer id);

	/**
	 * 修改管理员
	 * @param admin 管理员对象
	 */
	void editAdmin(Admin admin);

	/**
	 * 添加管理员角色关系
	 * @param adminId 管理员id
	 * @param roleIdList 角色id的List集合
	 */
	void saveAdminRoleRelationship(Integer adminId, List<Integer> roleIdList);

}
